<!DOCTYPE html>
<html>
<head>
  <title>bot.action + editor test</title>
  <script src="test_bootstrap.js"></script>
  <script type="text/javascript">
    goog.require('bot.action');
    goog.require('bot.locators');
    goog.require('goog.dom');
    goog.require('goog.color');
    goog.require('goog.events');
    goog.require('goog.ui.Component.EventType');
    goog.require('goog.ui.editor.DefaultToolbar');
    goog.require('goog.testing.jsunit');

    function addStyleSheet(path) {
      document.write(
          '<link rel="stylesheet" href="' + goog.basePath + path + '"/>');
    }
    addStyleSheet('demos/css/demo.css');
    addStyleSheet('css/toolbar.css');
    addStyleSheet('css/colormenubutton.css');
    addStyleSheet('css/palette.css');
    addStyleSheet('css/colorpalette.css');
    addStyleSheet('css/editortoolbar.css');
  </script>
</head>
<body>
<div id='toolbar' style='width:602px'></div>

  <script type="text/javascript">
  var toolbar = goog.ui.editor.DefaultToolbar.makeToolbar([
    goog.editor.Command.BACKGROUND_COLOR,
  ], goog.dom.getElement('toolbar'));
  var bgColorMenu = toolbar.getChildAt(0);

  function testCanInteractWithColorbuttonMenu_toolbarIsFocusable() {
    toolbar.setFocusable(true);
    runColorButtonMenuInteractionTest();
  }

  function testCanInteractWithColorbuttonMenu_toolbarNotIsFocusable() {
    toolbar.setFocusable(false);
    runColorButtonMenuInteractionTest();
  }

  function runColorButtonMenuInteractionTest() {
    bgColorMenu.setValue('#FFF');

    bot.action.click(bgColorMenu.getElement());
    assertTrue('Menu not opened', bgColorMenu.isOpen());

    var actionFired = false;
    goog.events.listenOnce(toolbar, goog.ui.Component.EventType.ACTION,
        function(e) {
      actionFired = true;
    });

    bot.action.click(getRedSwatch());

    assertTrue('Action event not fired!', actionFired);
  }

  function getRedSwatch() {
    var colorMenu = bgColorMenu.getMenu();
    var solidPalette = colorMenu.getChildAt(1);

    var redSwatch = bot.locators.findElement(
        {className: 'goog-palette-colorswatch'},
        solidPalette.getElement());
    assertNotNull(redSwatch);

    var color = bot.dom.getEffectiveStyle(redSwatch, 'background-color');
    assertEquals('#ff0000', goog.color.parse(color).hex);
    return redSwatch;
  }
  </script>
</body>
</html>
